package org.flink.marketing.util;

import org.flink.marketing.constant.EventTrackingConstant;

import java.util.ArrayList;
import java.util.List;

public class CheckUtil {

    //黑名单key
    public static String   BASEBLACKLIST_KEY="BASEBLACKLIST_KEY";
    //应用key
    public static String   BASEAPPLICATIONINFODOLIST_KEY="BASEAPPLICATIONINFODOLIST_KEY";
    //事件key
    public static String   EVENTTYPEDOLIST_KEY="EVENTTYPEDOLIST_KEY";
    //事件属性key
    public static String   EVENTITEMDOLIST_KEY="EVENTITEMDOLIST_KEY";
    //用户属性key
    public static String   BASEUSERATTRIBUTESDOLIST_KEY="BASEUSERATTRIBUTESDOLIST_KEY";


    private static List<String> points = new ArrayList<>();
    private static List<String> columnList = new ArrayList<>();

    static {
        points.add(EventTrackingConstant.LIB);
        points.add(EventTrackingConstant.PROPERTIES);


        columnList.add("distinct_id");
        columnList.add("lib1");
        columnList.add("lib_method");
        columnList.add("lib_version");
        columnList.add("propertie_lib");
        columnList.add("propertie_version");
        columnList.add("network_type");
        columnList.add("manufacturer");
        columnList.add("model");
        columnList.add("screen_width");
        columnList.add("screen_height");
        columnList.add("os");
        columnList.add("os_version");
        columnList.add("timezone_offset");
        columnList.add("app_id");
        columnList.add("sreen_id");
        columnList.add("latest_scene");
        columnList.add("url_path");
        columnList.add("event_duration");
        columnList.add("appName");
        columnList.add("appId");
        columnList.add("is_first_day");
        columnList.add("anonymous_id");
        columnList.add("type1");
        columnList.add("event");
        columnList.add("page_id");
        columnList.add("login_id");
        columnList.add("time");
        columnList.add("dt");
        columnList.add("channel_name");
        columnList.add("idmap_reason");
        columnList.add("channel_link_id");
        columnList.add("local_time");
        columnList.add("monetary");
        columnList.add("site_language");
        columnList.add("site_id");
        columnList.add("category_id");
        columnList.add("commodity_spu");
        columnList.add("commodity_sku");
        columnList.add("is_new");
        columnList.add("track_signup_original_id");
        columnList.add("share_content");
        columnList.add("second_category");
        columnList.add("room_name");
        columnList.add("room_id");
        columnList.add("room_category");
        columnList.add("return_price_total");
        columnList.add("rebate_amount");
        columnList.add("player_name");
        columnList.add("player_id");
        columnList.add("order_type");
        columnList.add("order_should_pay");
        columnList.add("oa_level");
        columnList.add("member_level");
        columnList.add("live_duration");
        columnList.add("is_own_goods");
        columnList.add("is_follow_anchor");
        columnList.add("inviter_id");
        columnList.add("group_type");
        columnList.add("group_number");
        columnList.add("group_member");
        columnList.add("goods_price");
        columnList.add("goods_position");
        columnList.add("first_category");
        columnList.add("enter_source");
        columnList.add("duration");
        columnList.add("distributor_level");
        columnList.add("distributor_fans");
        columnList.add("distibute_content");
        columnList.add("cost");
        columnList.add("barrage_content");
        columnList.add("anchor_type");
        columnList.add("StoreCouponAmount");
        columnList.add("PlatformCouponAmount");
        columnList.add("MixStoreCouponAmount");
        columnList.add("mp_event_key");
        columnList.add("sf_total_msgs_success");
        columnList.add("sf_total_msgs");
        columnList.add("mp_reply_appid");
        columnList.add("sf_keyword");
        columnList.add("sf_msg_group_id");
        columnList.add("mp_card_id");
        columnList.add("mp_tail_content");
        columnList.add("mp_option_list");
        columnList.add("mp_head_content");
        columnList.add("mp_msg_group_type");
        columnList.add("sf_keyword_rule_id");
        columnList.add("mp_bizmsgmenu_id");
        columnList.add("mp_menu_id");
        columnList.add("mp_url");
        columnList.add("mp_description");
        columnList.add("mp_title");
        columnList.add("mp_thumb_media_id");
        columnList.add("mp_media_id");
        columnList.add("mp_pic_url");
        columnList.add("mp_msg_id");
        columnList.add("mp_content");
        columnList.add("mp_click_menu_type");
        columnList.add("mp_receive_msg_type");
        columnList.add("app_type_info");
        columnList.add("bot_name");
        columnList.add("sf_convert_id");
        columnList.add("sf_strategy_unit_id");
        columnList.add("short_url_target");
        columnList.add("short_url_key");
        columnList.add("element_path");
        columnList.add("app_version");
        columnList.add("browser");
        columnList.add("browser_version");
        columnList.add("carrier");
        columnList.add("city");
        columnList.add("country");
        columnList.add("device_id");
        columnList.add("element_class_name");
        columnList.add("element_content");
        columnList.add("element_id");
        columnList.add("element_name");
        columnList.add("element_position");
        columnList.add("element_selector");
        columnList.add("element_target_url");
        columnList.add("element_type");
        columnList.add("latest_referrer");
        columnList.add("latest_search_keyword");
        columnList.add("latest_traffic_source_type");
        columnList.add("latest_utm_campaign");
        columnList.add("latest_utm_content");
        columnList.add("latest_utm_medium");
        columnList.add("latest_utm_source");
        columnList.add("latest_utm_term");
        columnList.add("lib");
        columnList.add("referrer");
        columnList.add("referrer_host");
        columnList.add("resume_from_background");
        columnList.add("scene");
        columnList.add("sf_channel_category");
        columnList.add("sf_channel_id");
        columnList.add("sf_channel_service_name");
        columnList.add("sf_enter_plan_time");
        columnList.add("sf_link_url");
        columnList.add("sf_msg_content");
        columnList.add("sf_msg_id");
        columnList.add("sf_msg_title");
        columnList.add("sf_plan_id");
        columnList.add("sf_plan_strategy_id");
        columnList.add("share_depth");
        columnList.add("share_distinct_id");
        columnList.add("share_url_path");
        columnList.add("title");
        columnList.add("url");
        columnList.add("url_host");
        columnList.add("utm_campaign");
        columnList.add("utm_content");
        columnList.add("utm_matching_type");
        columnList.add("utm_medium");
        columnList.add("utm_source");
        columnList.add("utm_term");
        columnList.add("viewport_height");
        columnList.add("viewport_position");
        columnList.add("viewport_width");
        columnList.add("wifi");
        columnList.add("App_crashed_reason");
        columnList.add("account");
        columnList.add("activity_id");
        columnList.add("activity_name");
        columnList.add("app_name");
        columnList.add("application_id");
        columnList.add("apply_reason");
        columnList.add("banner_belong_area");
        columnList.add("banner_id");
        columnList.add("banner_name");
        columnList.add("banner_rank");
        columnList.add("banner_type");
        columnList.add("cancel_reason");
        columnList.add("cash_back_amount");
        columnList.add("cash_back_name");
        columnList.add("commodity_amount");
        columnList.add("commodity_colour");
        columnList.add("commodity_detail_souce");
        columnList.add("commodity_discount_amount");
        columnList.add("commodity_id");
        columnList.add("commodity_name");
        columnList.add("commodity_quantity");
        columnList.add("commodity_score");
        columnList.add("commodity_size");
        columnList.add("commodity_tag");
        columnList.add("contact_type");
        columnList.add("convert_id");
        columnList.add("delivery_method");
        columnList.add("discount_amount");
        columnList.add("discount_id");
        columnList.add("discount_name");
        columnList.add("discount_price");
        columnList.add("discount_type");
        columnList.add("entrance");
        columnList.add("fail_reason");
        columnList.add("first_commodity");
        columnList.add("friend_num");
        columnList.add("get_type");
        columnList.add("group_id");
        columnList.add("head_id");
        columnList.add("head_name");
        columnList.add("if_use_integral");
        columnList.add("integral_discount_amount");
        columnList.add("invisitor_id");
        columnList.add("is_cash_back");
        columnList.add("is_default_confirm");
        columnList.add("is_login");
        columnList.add("is_quick_login");
        columnList.add("is_success");
        columnList.add("is_use_discount");
        columnList.add("is_vip");
        columnList.add("key_word");
        columnList.add("key_word_classify");
        columnList.add("key_word_type");
        columnList.add("login_method");
        columnList.add("mkt_location");
        columnList.add("mkt_name");
        columnList.add("mkt_page");
        columnList.add("mkt_type");
        columnList.add("monetary_unit");
        columnList.add("number_of_integral");
        columnList.add("offlineStoreID");
        columnList.add("offlineStoreName");
        columnList.add("order_actual_amount");
        columnList.add("order_amount");
        columnList.add("order_id");
        columnList.add("original_price");
        columnList.add("page_redirect");
        columnList.add("page_title");
        columnList.add("page_type");
        columnList.add("payment_method");
        columnList.add("platform_type");
        columnList.add("position_number");
        columnList.add("present_price");
        columnList.add("pushID");
        columnList.add("push_content");
        columnList.add("push_content_id");
        columnList.add("push_type");
        columnList.add("quantity_unit");
        columnList.add("receiver_address");
        columnList.add("receiver_area");
        columnList.add("receiver_city");
        columnList.add("receiver_name");
        columnList.add("receiver_province");
        columnList.add("register_method");
        columnList.add("result_number");
        columnList.add("scanActivityName");
        columnList.add("scanType");
        columnList.add("second_commodity");
        columnList.add("segmentation_name");
        columnList.add("service_type");
        columnList.add("share_type");
        columnList.add("store_id");
        columnList.add("store_name");
        columnList.add("supplier_id");
        columnList.add("supplier_name");
        columnList.add("total_price_of_commodity");
        columnList.add("transportation_costs");
        columnList.add("vip_level");
        columnList.add("is_first_time");
        columnList.add("url_query");
        columnList.add("latest_share_method");
        columnList.add("first_search_keyword");
        columnList.add("first_referrer_host");
        columnList.add("latest_share_distinct_id");
        columnList.add("share_method");
        columnList.add("is_login_id");
        columnList.add("latest_share_url_path");
        columnList.add("first_referrer");
        columnList.add("type");
        columnList.add("first_visit_time");
        columnList.add("latest_share_depth");
        columnList.add("viewpoint_height");
        columnList.add("first_traffic_source_type");
        columnList.add("share_type2");
        columnList.add("original_id");
        columnList.add("lib_detail");
        columnList.add("first_browser_charset");
        columnList.add("express_name");
        columnList.add("application_ode");
        columnList.add("user_count");
        columnList.add("userName");
        columnList.add("report_name");
        columnList.add("password");
        columnList.add("captcha");
        columnList.add("is_click");
        columnList.add("company_name");

        /***************客户新增字段******************/
        columnList.add("from_nickname");
        columnList.add("brand");
        columnList.add("scenario");
        columnList.add("call_method");
        columnList.add("user_id");
        columnList.add("from_UID");
        columnList.add("distinct_id");
        columnList.add("identity_distinct_id");
        columnList.add("answer_fail_reason");
        columnList.add("receive_time");
        columnList.add("ip");
        columnList.add("is_sufficient");
        columnList.add("hangup_reason");
        columnList.add("identity_login_id");
        columnList.add("is_answer");
        columnList.add("end_with_me");
        columnList.add("app_video_id");
        columnList.add("eventTime");
        columnList.add("language");
        columnList.add("app_event_type");
        columnList.add("province");
        columnList.add("app_video_channel");
        columnList.add("app_target_uid");
        columnList.add("completeSize");
        columnList.add("needSize");
        columnList.add("lib_plugin_version");
        columnList.add("content");
        columnList.add("obj_type");
        columnList.add("manage_uid");
        columnList.add("manage_main_nickname");
        columnList.add("manage_main_uid");
        columnList.add("days");
        columnList.add("end_time");
        columnList.add("remark");
        columnList.add("comsume_diamond");
        columnList.add("manage_nickname");
        columnList.add("consume_dollar");
        columnList.add("consume_diamond");
        columnList.add("start_time");
        columnList.add("reason");
        columnList.add("pre_flow_open_date");
        columnList.add("diamond");
        columnList.add("date_time");
        columnList.add("anchor_nickname");
        columnList.add("anchor_uid");
        columnList.add("commented_uid");
        columnList.add("commented_nickname");
        columnList.add("profile_id");
        columnList.add("msg_uid");
        columnList.add("profile_name");
        columnList.add("amount");
        columnList.add("giftIncome");
        columnList.add("endWithMe");
        columnList.add("sessionDuration");
        columnList.add("videoIncome");
        columnList.add("videoConsume");
        columnList.add("sessionIncome");
        columnList.add("toUid");
        columnList.add("giftConsumeDiamond");
        columnList.add("videoDuration");
        columnList.add("chatIncomeGold");
        columnList.add("isToday");
        columnList.add("chatConsumeGold");
        columnList.add("relationship_ID");
        columnList.add("giftIncomeDiamond");
        columnList.add("sessionIncomeDiamond");
        columnList.add("chatConsumeDiamond");
        columnList.add("sessionIncomeGold");
        columnList.add("chatConsume");
        columnList.add("startWithMe");
        columnList.add("rcvTotal");
        columnList.add("endTime");
        columnList.add("sessionConsumeDiamond");
        columnList.add("toregtime");
        columnList.add("sendTotal");
        columnList.add("isEffective");
        columnList.add("videoConsumeDiamond");
        columnList.add("sessionConsume");
        columnList.add("isEffectiveAB");
        columnList.add("giftConsume");
        columnList.add("msgTotal");
        columnList.add("newPriceStart");
        columnList.add("chatIncome");
        columnList.add("chatIncomeDiamond");
        columnList.add("firstTime");
        columnList.add("sessionConsumeGold");
        columnList.add("friendLevel");
        columnList.add("isGreet");
        columnList.add("videoIncomeGold");
        columnList.add("videoConsumeGold");
        columnList.add("videoIncomeDiamond");
        columnList.add("chatExplod");
        columnList.add("startTime");
        columnList.add("rate");
        columnList.add("manage_award_id");
        columnList.add("manage_anchor_uid");
        columnList.add("award_diamond");
        columnList.add("award_dollar");
        columnList.add("inv_award_rate");
        columnList.add("inv_award_day");
        columnList.add("recharge_diamond");
        columnList.add("inv_award_time");
        columnList.add("target_UID");
        columnList.add("action");
        columnList.add("referrer_title");
        columnList.add("application_action");
        columnList.add("msg_MiniContent");
        columnList.add("msg_SentStatus");
        columnList.add("messageUId");
        columnList.add("dollar");
        columnList.add("tng");
        columnList.add("video_chat_status");
        columnList.add("video_chat_desc");
        columnList.add("agoraRtc_ID");
        columnList.add("receive_UID");
        columnList.add("send_UID");
        columnList.add("code");
        columnList.add("response");
        columnList.add("params");
        columnList.add("requestHeaders");
        columnList.add("avatar");
        columnList.add("unique_nid");
        columnList.add("record_type");
        columnList.add("other_uid");
        columnList.add("status_to");
        columnList.add("reply_type");
        columnList.add("female_nickname");
        columnList.add("uid");
        columnList.add("video");
        columnList.add("ban_type");
        columnList.add("blur");
        columnList.add("mobile_prefix");
        columnList.add("login_time");
        columnList.add("list");
        columnList.add("scene_id");
        columnList.add("report_type");
        columnList.add("version");
        columnList.add("invite_code");
        columnList.add("tags");
        columnList.add("male_nickname");
        columnList.add("earn_uid");
        columnList.add("to_uid");
        columnList.add("memo");
        columnList.add("passwd");
        columnList.add("latest_receipt");
        columnList.add("method");
        columnList.add("mobile");
        columnList.add("phone");
        columnList.add("violation_id");
        columnList.add("other_remind");
        columnList.add("token");
        columnList.add("fields");
        columnList.add("hangup_type");
        columnList.add("audio");
        columnList.add("birthday");
        columnList.add("client");
        columnList.add("v");
        columnList.add("t");
        columnList.add("nickname");
        columnList.add("install_time");
        columnList.add("event_type");
        columnList.add("transaction_id");
        columnList.add("phone_prefix");
        columnList.add("bind1");
        columnList.add("bind2");
        columnList.add("male_uid");
        columnList.add("page");
        columnList.add("size");
        columnList.add("photos");
        columnList.add("role");
        columnList.add("greet_type");
        columnList.add("gender");
        columnList.add("uids");
        columnList.add("conn_type");
        columnList.add("msg");
        columnList.add("call_remind");
        columnList.add("online_remind");
        columnList.add("msg_remind");
        columnList.add("female_uid");
        columnList.add("text");
        columnList.add("agent_id");
        columnList.add("times");
        columnList.add("recharge_id");
        columnList.add("consume_type");
        columnList.add("black_uid");
        columnList.add("user");
        columnList.add("recharge_method");
        columnList.add("gift_id");
        columnList.add("signature");
        columnList.add("sender");
        columnList.add("send_time");
        columnList.add("browse_time");
        columnList.add("browseTime");
        columnList.add("anchorId");
        columnList.add("anchorNick");
        columnList.add("anchorusertitle");
        columnList.add("updateTime");
        columnList.add("screen");
        columnList.add("update_time");
        columnList.add("current_UID");
        columnList.add("sendMsgTime");
        columnList.add("matching_key_list");
        columnList.add("channel_active_period_day");
        columnList.add("user_agent");
        columnList.add("channel_attribute_period_hour");
        columnList.add("ios_install_source");
        columnList.add("channel_active_result");
        columnList.add("num");
        columnList.add("video_type");
        columnList.add("video_id");
        columnList.add("name");
        columnList.add("app_video_create_time");
        columnList.add("purchase_token");
        columnList.add("save_purchase_info");
        columnList.add("ordersNo");
        columnList.add("diamond_dollar");
        columnList.add("invite_dollar");
        columnList.add("week_diamond");
        columnList.add("diamond_ratio");
        columnList.add("coin_dollar");
        columnList.add("last_week_diamond");
        columnList.add("min_amount");
        columnList.add("coin");
        columnList.add("coin_ratio");
        columnList.add("lastMsgIsQbt");
        columnList.add("msgTimeOut");
        columnList.add("lastMsgReceiveTime");
        columnList.add("life_time");
        columnList.add("life_desc");
        columnList.add("file_name");
        columnList.add("pushMessage");
        columnList.add("pushType");
        columnList.add("deduct_type");
        columnList.add("currency");
        columnList.add("banner_jump");
        columnList.add("banner_image");
        columnList.add("event_date");
        columnList.add("sub_value");
        columnList.add("user_uid");
        columnList.add("new_value");
        columnList.add("old_value");
        columnList.add("friend_value");
        columnList.add("isfirsttime");
        columnList.add("count");
        columnList.add("way");
        columnList.add("scenarioAction");
        columnList.add("download");
        columnList.add("event_time");
        columnList.add("report_scene");
        columnList.add("record_id");
        columnList.add("cupid_uid");
        columnList.add("to_anchor_id");
        columnList.add("verify_type");
        columnList.add("is_cupid");
        columnList.add("purchaseOrderId");
        columnList.add("purchaseSkus");
        columnList.add("state");
        columnList.add("purchaseToken");
        columnList.add("orderNid");
        columnList.add("purchaseObfuscatedProfileId");
        columnList.add("purchaseObfuscatedAccountId");
        columnList.add("purchaseTime");
        columnList.add("target_nickname");
        columnList.add("call_fail_reason");
        columnList.add("eventname");
        columnList.add("self_uid");
        columnList.add("debugMessage");
        columnList.add("responseMsg");
        columnList.add("responseCode");
        columnList.add("skuDetail");
        columnList.add("order_nid");
        columnList.add("From");
        columnList.add("diamonds");
        columnList.add("app_remote_config");
        columnList.add("number");
        columnList.add("surplus_diamond");
        columnList.add("page_referrer");
        columnList.add("page_module");
        columnList.add("screen_name");
        columnList.add("remard");
        columnList.add("reward_type");
        columnList.add("login_type");
        columnList.add("is_install_today");
        columnList.add("surplus_coins");
        columnList.add("gift_type");
        columnList.add("consume_number");
        columnList.add("currency_type");
        columnList.add("unique_id");
        columnList.add("inviter");
        columnList.add("Flash_scene");
        columnList.add("scene_count");
        columnList.add("msg_type");
        columnList.add("msg_id");
        columnList.add("interval");
        columnList.add("isEditedGender");
        columnList.add("isEditedInterests");
        columnList.add("isEditedBirthday");
        columnList.add("isEditedAvatar");
        columnList.add("ability_score");
        columnList.add("ability_score_float");
        columnList.add("abilityRatio");
        columnList.add("regist_method");
        columnList.add("click_share_button");
        columnList.add("click_share_entrance");
        columnList.add("click_copy_button");
        columnList.add("selectedSkuName");
        columnList.add("googleSku");
        columnList.add("selectedSkuDetail");
        columnList.add("invitePhone");
        columnList.add("agentId");
        columnList.add("inviteCode");
        columnList.add("InviteCountry");
        columnList.add("msg_text");
        columnList.add("msg_remark");
        columnList.add("is_blocked");
        columnList.add("app_video_time");
        columnList.add("is_succ");
        columnList.add("app_type");
        columnList.add("fall_resason");
        columnList.add("mark");
        columnList.add("comeTime");
        columnList.add("eva_touid");
        columnList.add("eva_grade");
        columnList.add("eva_content");
        columnList.add("eva_tag");
        columnList.add("coverpic_close_reas");
        columnList.add("coverpic_duration");
        columnList.add("coverpic_to_uid");
        columnList.add("channel");
        columnList.add("pre_time");
        columnList.add("request_time");
        columnList.add("real_time");
        columnList.add("purchasesSize");
        columnList.add("purchasesList");
        columnList.add("billingConnectionStatus");
        columnList.add("billingConnectionResponseCode");
        columnList.add("request_end_time");
        columnList.add("request_params");
        columnList.add("request_duration");
        columnList.add("request_headers");
        columnList.add("request_method");
        columnList.add("request_response_body");
        columnList.add("request_response_data");
        columnList.add("request_response_code");
        columnList.add("request_start_time");
        columnList.add("request_response_common_code");
        columnList.add("request_response_common_v");
        columnList.add("request_response_common_t");
        columnList.add("request_duration_url");
        columnList.add("request_url");
        columnList.add("request_response_common_msg");
        columnList.add("create_time");
        columnList.add("kafka_offset");

    }

    public static boolean isContain(String point){
        if (points.stream().anyMatch(point::contains)){
            return true;
        }
        return false;
    }

    public static boolean checkColumn(String column){
        if (columnList.stream().anyMatch(column::equals)){
            return true;
        }
        return false;
    }

    public static boolean checkTime(String column,List<String> fileds){
        if (fileds.stream().anyMatch(column::equals)){
            return true;
        }
        return false;
    }
}
